﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DTO;
using BUS;
using System.Text;
using System.Security.Cryptography;

namespace FastDeal.Control
{
    public partial class wuc_DangNhap : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.Form.DefaultButton = btnDangNhap.UniqueID;
            if (Session["DaDangNhap"] == null || (Boolean)Session["DaDangNhap"] == false)
            {
                //Nếu chưa  đăng nhập, set trạng thái paneldang nhập hiện lên
                SetTrangThaiPanel(false);
                //this.Buil
            }
            else
            {
                //Nếu đã đăng nhập = > hiển thị nút logout
                SetTrangThaiPanel(true);
            }
        }

        /// <summary>
        /// Phương thức set trạng thái panel đăng nhập, đăng xuất
        /// </summary>
        /// <param name="trangthai"></param>
        private void SetTrangThaiPanel(bool trangthai)
        {
            if (trangthai == false)
            {
                //Hiện form đăng nhập
                Panel_DangXuat.Visible = false;
                Panel_DangNhap.Visible = true;
                lbLoi.Text = String.Empty;
            }
            else
            {
                //Hiện form logout
                Panel_DangNhap.Visible = false;
                Panel_DangXuat.Visible = true;
                lbLoi.Text = string.Empty;
                lbUserName.Text = "Chào "+Session["Username"].ToString();

                if ((int)Session["LoaiThanhVien"] == 1)
                {
                    pnQuanTri.Visible = true;
                    pnDoanhNghiep.Visible = false;
                }
                else
                {
                    pnQuanTri.Visible = false;
                    pnDoanhNghiep.Visible = true;
                }


            }
        }

        public string MaHoaMatKhau(string password)
        {
            UnicodeEncoding encoding = new UnicodeEncoding();
            Byte[] hashBytes = encoding.GetBytes(password);
            // Compute the SHA-1 hash
            SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
            Byte[] cryptPassword = sha1.ComputeHash(hashBytes);
            return BitConverter.ToString(cryptPassword).Substring(0, 8);
        }

        protected void btnDanhNhap_Click(object sender, EventArgs e)
        {
            if (txtMatKhau.Text != string.Empty || txtUserName.Text != string.Empty)
            {
                TaiKhoan_BUS db = new TaiKhoan_BUS();
                TaiKhoan taikhoan = new TaiKhoan();
                taikhoan = db.LayThongTin_TaiKhoan(txtUserName.Text);

                if (taikhoan == null)
                {
                    lbLoi.Text = "Không tồn tại tài khoản này";
                }
                else
                {
                    //ngược lại: nếu tồn tại tài khoản này - > kiểm tra password
                    if (taikhoan.Password != MaHoaMatKhau(txtMatKhau.Text))
                    {
                        lbLoi.Text = "Mật khẩu không hợp lệ";
                    }
                    else
                    {
                        //Đăng nhập thành công!! -> set các session đăng nhập, username, loại thành viên
                        lbLoi.Text = string.Empty;
                        Session["DaDangNhap"] = true;
                        Session["LoaiThanhVien"] = taikhoan.MaLoaiThanhVien;
                        Session["Username"] = taikhoan.UserName;
                        Session["UserID"] = taikhoan.UserID;
                      
                        if ((int)Session["LoaiThanhVien"] == 1)
                        {
                            pnQuanTri.Visible = true;
                            pnDoanhNghiep.Visible = false;
                        }
                        else if ((int)Session["LoaiThanhVien"] == 3)
                        {
                            pnQuanTri.Visible = false;
                            pnDoanhNghiep.Visible = true;
                        }
                        else
                        {
                            pnQuanTri.Visible = false;
                            pnDoanhNghiep.Visible = false;
                        }

                     
                        GioHang gioHang = new GioHang();
                        gioHang.KhoiTaoGioHang();
                        TrangThaiDangNhap.LayGioHang = gioHang;
                        SetTrangThaiPanel(true);
                        switch (int.Parse(taikhoan.MaLoaiThanhVien.ToString()))
                        {
                            case 1:
                                Response.Redirect("~/Admin/Default.aspx");
                                break;
                            case 2:
                                Response.Redirect("~/User/Default.aspx");
                                break;
                            case 3:
                                Response.Redirect("~/DoanhNghiep/Default.aspx");
                                break;
                        }
                    }
                }

            }
            else
            {
                lbLoi.Text = "Vui lòng nhập thông tin đăng nhập";
            }
        }

        protected void btnDangXuat_Click(object sender, EventArgs e)
        {
            //if (Session["DaDangNhap"] != null || (Boolean)Session["DaDangNhap"] == true)
            //{
                Session["DaDangNhap"] = false;
                Session["LoaiThanhVien"] = -1;
                Session["Username"] = string.Empty;
                Session["UserID"] = -1;

                Response.Redirect("~/Default.aspx");
                SetTrangThaiPanel(false);
            //}
        }

        protected void btnDangXuat_Click1(object sender, EventArgs e)
        {
            if (Session["DaDangNhap"] != null || (Boolean)Session["DaDangNhap"] == true)
            {
                Session["DaDangNhap"] = false;
                Session["LoaiThanhVien"] = -1;
                Session["Username"] = string.Empty;
                Session["UserID"] = -1;
                SetTrangThaiPanel(false);
                Response.Redirect("~/Default.aspx");

            }
            
        }

        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("Cart.aspx");
        }
    }
}